package cmd

import (
	"fmt"
	"net/http"
	"server/global"
	"server/internal/app/task"
	"server/internal/middleware"
	"server/internal/router"
	"server/utils/database"
	"server/utils/logs"
	"server/utils/lyp"

	"github.com/gin-gonic/gin"
)

// RunServer 启动项目
func RunServer() {
	global.InitConfig() //配置文件

	//是否开启开发模式
	gin.SetMode(global.GL_CONFIG.Server.SetMode)

	r := gin.Default() //初始化gin项目

	//组件
	database.InitDB() //初始化数据库
	logs.InitLog()    //初始化日志配置

	//中间件
	r.Use(middleware.Cors()) //初始化跨域方法

	//路由
	router.CommonApi(r)   //公共接口
	router.AdminRouter(r) //后台接口

	router.WebApiNoneLogin(r)   //用户端 不验证登录
	router.WebApiVerifyLogin(r) //用户端 验证登录

	//静态资源
	r.Static("/public", "./public")                //初始化public文件夹的路由
	r.Static("/static", "./public/static")         //初始化public文件夹的路由
	r.StaticFS("/administrator", http.Dir("dist")) //后台
	r.StaticFS("/wap", http.Dir("wap"))            //前端
	r.StaticFS("/web", http.Dir("web"))
	r.StaticFile("/"+global.GL_CONFIG.Server.WxYanZheng, "./public/"+global.GL_CONFIG.Server.WxYanZheng)
	r.StaticFile("tJTk4RmS2e.txt", "./public/tJTk4RmS2e.txt")

	//启动定时任务
	task.Init()
	task.Start()

	//佛祖保佑
	lyp.GreatBuddha() //嘻嘻

	//启动项目
	err := r.Run(":" + global.GL_CONFIG.Server.Port)
	if err != nil {
		fmt.Println("项目启动失败！", err)
	}
}
